package com.boilerCloud.util;


/**
 * @Description: 文件路径工具类
 */
public abstract class FilePathUtils
{
    /**
     * 
     * @Title: getExt
     * @Description: 获取文件扩展名。
     * @param path
     *            文件路径
     * @return String 扩展名
     */
    public static final String getExt(String path)
    {
        if (path != null && !path.isEmpty())
        {
            for (int i = path.length() - 1; i > 0; i--)
            {
                if (path.charAt(i) == '.')
                {
                    return path.substring(i).toLowerCase();
                }
            }
        }
        return "";
    }

    /**
     * 
     * @Title: getFileName
     * @Description: 从文件路径中获取文件名（包含扩展名）
     * @param filePath
     *            文件路径
     * @return String 文件名
     */
    public static final String getFileName(String filePath)
    {
        if (filePath != null && !filePath.isEmpty())
        {
            for (int len = filePath.length(), i = len - 1; i > 0; i--)
            {
                if (filePath.charAt(i) == '/' || filePath.charAt(i) == '\\')
                {
                    return i == len - 1 ? "" : filePath.substring(i + 1);
                }
            }
            return filePath;
        }
        return "";
    }

    /**
     * 
     * @Title: appendSeparator
     * @Description: 如果入参目录路径不是以指定的文件分隔符结尾，则将指定的文件分隔符追加到目录路径末尾返回。
     * @param fileDir
     *            目录路径。标准的目录路径以文件分隔符（'/'或'\'）结尾。
     * @param sp
     *            文件分隔符
     * @return String
     */
    public static final String appendSeparator(String fileDir, char sp)
    {
        if (fileDir == null)
        {
            return fileDir;
        }
        return fileDir.endsWith(String.valueOf(sp)) ? fileDir : fileDir + sp;
    }

    /**
     * 
     * @Title: appendSeparator
     * @Description: 如果入参目录路径不是以操作系统默认的文件分隔符结尾，则将操作系统默认文件分隔符追加到目录路径末尾返回。
     * @param fileDir
     *            目录路径。标准的目录路径以文件分隔符（'/'或'\'）结尾。
     * @return String
     */
    public static final String appendSeparator(String fileDir)
    {
        if (fileDir == null || fileDir.isEmpty())
        {
            return fileDir;
        }
        return fileDir.endsWith("/") ? fileDir : fileDir + "/";
        // return fileDir.endsWith(File.separator) ? fileDir : fileDir +
        // File.separator;
    }

    /**
     * 
     * @Title: trimLeftSeparator
     * @Description: 去除相对路径最左侧的文件分隔符
     * @param relativePath
     *            文件相对路径
     * @return String
     */
    public static final String trimLeftSeparator(String relativePath)
    {
        if (relativePath == null || relativePath.length() < 2)
        {
            return relativePath;
        }
        return relativePath.startsWith("/") ? relativePath.substring(1) : relativePath;
    }

}
